
            <!DOCTYPE html>
            <html lang="en">
            <head>
                <meta charset="UTF-8">
                <title>Kubernetes之network failed to set bridge addr “cni0“ already has an IP address different from xxx问题</title>
            </head>
            <body>
            <a href="https://andyoung.blog.csdn.net">原作者博客</a>
            <div id="content_views" class="markdown_views prism-atom-one-light">
                    <svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
                        <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path>
                    </svg>
                    <p>再k8s网络插件错误导致Kubernetes部署应用时发现有Pod一直不能创建成功，使用<br> <code>kubectl describe pods &lt;pod-name&gt; -n &lt;namespace&gt;</code>得到的结果如下图：<br> <img src="https://i-blog.csdnimg.cn/blog_migrate/8d5d49703c8ac59f24fde81b3982b616.png" alt=""><br> 从上面的截图中看到问题出现在给Pod分配IP上，意思是cni0的IP不同于10.244.9.1/24，下面我们进入到node9中使用ifconfig命令查看IP信息，结果如下：<br> <img src="https://i-blog.csdnimg.cn/blog_migrate/25f13b86704d0565d32067e84a7cd69c.png" alt="在这里插入图片描述"><br> 从上面的图中我们可以看到flannel.1的IP为10.244.9.0，然后我们又使用cat /run/flannel/subnet.env，该文件内容如下：<br> <img src="https://i-blog.csdnimg.cn/blog_migrate/310efbdb614636a17aa48eaf4a8dc2c5.png" alt=""><br> 其实现在的问题就比较明确了，我们使用的Overlay network为Flannel，也就是说Pod的IP地址段应该在Flannel的subnet下，而现在我们看到cni0的IP地址段与flannel subnet地址段不同，所以就出现了问题。</p> 
<h2><a id="_9"></a>解决方案</h2> 
<ul><li>方法1是将cni0的IP段修改为10.244.9.1。</li><li>方法2是将这个错误的网卡删除掉，之后会自动重建。<br> 下面我们删除错误的cni0，然后让它自己重建，操作过程如下</li></ul> 
<pre><code>sudo ifconfig cni0 down    
sudo ip link delete cni0
</code></pre>
                </div>
            </body>
            </html>
            